{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "33278971",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>转发量</th>\n",
       "      <th>品类热度</th>\n",
       "      <th>流量推送</th>\n",
       "      <th>成交额</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2646</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>260004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>816</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>100004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1224</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>164502</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1261</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>163001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1720</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>260401</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1541</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>220002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>827</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>107503</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>866</td>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "      <td>110504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1314</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>229461</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1431</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>165004</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    转发量  品类热度  流量推送     成交额\n",
       "0  2646     7     5  260004\n",
       "1   816     4     6  100004\n",
       "2  1224     6     5  164502\n",
       "3  1261     6     6  163001\n",
       "4  1720     7     5  260401\n",
       "5  1541     7     5  220002\n",
       "6   827     5     7  107503\n",
       "7   866     5     9  110504\n",
       "8  1314     8     5  229461\n",
       "9  1431     6     5  165004"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导入最基本的数据处理工具\n",
    "import pandas as pd # 导入Pandas数据处理工具包\n",
    "df_ads = pd.read_csv('直播带货.csv') # 读入数据\n",
    "df_ads.head(10) # 显示前几行数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "348b0454",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 36716 (\\N{CJK UNIFIED IDEOGRAPH-8F6C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 21457 (\\N{CJK UNIFIED IDEOGRAPH-53D1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25104 (\\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20132 (\\N{CJK UNIFIED IDEOGRAPH-4EA4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 39069 (\\N{CJK UNIFIED IDEOGRAPH-989D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 28857 (\\N{CJK UNIFIED IDEOGRAPH-70B9}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n"
     ]
    },
    {
     "data": {
      "image/png": "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OpGfn+9rY6YvelpaWtDU1KR5EBERUedkm6Dq1VdfRUNDA773ve8BAGpra5GcnIyMjAxNu8zMTNTW1vra+AdU6nH1WKg2TU1NaG5uxieffILW1lbdNv7nCNcXPaWlpUhPT/c9+vfvH/5GEBERUUKyTVBVVlaGSZMmoV+/fvHuimVKSkrQ2Njoe9TU1MS7S0RERNRBbLFNzQcffIC33noLf/7zn32vZWVl4fz582hoaNCMENXV1fk2PMzKygpapaeuyPNvE7hKr66uDmlpaejRo4evbL9eG/9zhOuLnpSUFKSkpJi8C0RERJTIbDFStXr1avTp0wcFBQW+10aPHo2kpCRs2bLF99qxY8dw8uRJ5OXlAQDy8vJw8OBBzSq9zZs3Iy0tDVdffbWvjf851DbqOZKTkzF69GhNG6/Xiy1btvjamOkLERERdXExSpw31NraKjk5OfLwww8HHZs5c6bk5OTI1q1bZe/evZKXlyd5eXm+4xcvXpQRI0bIxIkTZf/+/bJx40a54oorpKSkxNfm/fffl9TUVJk3b54cPXpUli9fLi6XSzZu3Ohrs2bNGklJSZHy8nI5cuSITJ8+XTIyMjSrCsP1xQyu/iMiIko8Zr+/4x5Ubdq0SQDIsWPHgo41NzfL/fffL7169ZLU1FSZPHmynDp1StPmxIkTMmnSJOnRo4f07t1b5syZIxcuXNC0qaiokGuvvVaSk5Nl0KBBsnr16qBrLVu2THJyciQ5OVnGjRsnO3fujLgv4TCoIiIiSjxmv78dIiJxHSrrQpqampCeno7GxkakpaXFuztERERkgtnvb1vkVBERERElOgZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERERBZgUEVERERkAQZVRERkzOMBKiqUn0QUEoMqIiLSV1YGDBgAfPnLys+ysnj3iMjWGFQREVEwjweYPh3wepXnXi8wYwZHrIhCYFBFRETBqqvbAipVayvw3nvx6Q9RAmBQRUREwYYMAZwBXxEu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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 导入数据可视化所需要的库\n",
    "import matplotlib.pyplot as plt #Matplotlib – Python画图工具库\n",
    "import seaborn as sns #Seaborn – 统计学数据可视化工具库\n",
    "# 设置字体为SimHei，以正常显示中文标签\n",
    "plt.rcParams[\"font.family\"]=['SimHei'] \n",
    "plt.rcParams['font.sans-serif']=['SimHei'] \n",
    "# 用来正常显示负号\n",
    "plt.rcParams['axes.unicode_minus']=False \n",
    "\n",
    "plt.plot(df_ads['转发量'],df_ads['成交额'],'r.', label='数据点') # 用matplotlib.pyplot的plot方法显示散点图\n",
    "plt.xlabel('转发量') # x轴Label\n",
    "plt.ylabel('成交额') # y轴Label\n",
    "plt.legend() # 显示图例\n",
    "plt.show() # 显示绘图结果！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0f3c7bdf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>转发量</th>\n",
       "      <th>品类热度</th>\n",
       "      <th>流量推送</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2646</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>816</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1224</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1261</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1720</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    转发量  品类热度  流量推送\n",
       "0  2646     7     5\n",
       "1   816     4     6\n",
       "2  1224     6     5\n",
       "3  1261     6     6\n",
       "4  1720     7     5"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = df_ads.drop(['成交额'],axis=1) # 特征集，Drop掉标签字段\n",
    "y = df_ads.成交额 # 标签集\n",
    "X.head() # 显示前几行数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "f9c0da45",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    260004\n",
       "1    100004\n",
       "2    164502\n",
       "3    163001\n",
       "4    260401\n",
       "Name: 成交额, dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.head() # 显示前几行数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5bee2b6f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将数据集进行80%（训练集）和20%（验证集）的分割\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, \n",
    "                                   test_size=0.2, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "87f9ff17",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression # 导入线性回归算法模型\n",
    "model = LinearRegression() # 使用线性回归算法创建模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "46741cc2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(X_train, y_train) # 用训练集数据，训练机器，拟合函数，确定参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c5f219b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = model.predict(X_test) #预测测试集的Y值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d9d7acf4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>转发量</th>\n",
       "      <th>品类热度</th>\n",
       "      <th>流量推送</th>\n",
       "      <th>成交额真值</th>\n",
       "      <th>成交额预测值</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>529</th>\n",
       "      <td>1378</td>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>161003</td>\n",
       "      <td>204516.360122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>491</th>\n",
       "      <td>2090</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>207504</td>\n",
       "      <td>242936.889154</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>459</th>\n",
       "      <td>2207</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>180004</td>\n",
       "      <td>249664.428319</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>279</th>\n",
       "      <td>1382</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>176002</td>\n",
       "      <td>169916.207270</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>655</th>\n",
       "      <td>1556</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "      <td>154003</td>\n",
       "      <td>180551.192841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>326</th>\n",
       "      <td>1574</td>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>232003</td>\n",
       "      <td>245577.161314</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>440</th>\n",
       "      <td>833</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>117001</td>\n",
       "      <td>107297.933262</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1387</th>\n",
       "      <td>1797</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>213501</td>\n",
       "      <td>226089.291075</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1323</th>\n",
       "      <td>804</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>119001</td>\n",
       "      <td>105630.423555</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>1302</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>158002</td>\n",
       "      <td>166576.035143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>292 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       转发量  品类热度  流量推送   成交额真值         成交额预测值\n",
       "529   1378     7     9  161003  204516.360122\n",
       "491   2090     7     5  207504  242936.889154\n",
       "459   2207     7     5  180004  249664.428319\n",
       "279   1382     6     5  176002  169916.207270\n",
       "655   1556     6     6  154003  180551.192841\n",
       "...    ...   ...   ...     ...            ...\n",
       "326   1574     8     5  232003  245577.161314\n",
       "440    833     5     7  117001  107297.933262\n",
       "1387  1797     7     5  213501  226089.291075\n",
       "1323   804     5     7  119001  105630.423555\n",
       "61    1302     6     7  158002  166576.035143\n",
       "\n",
       "[292 rows x 5 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_ads_pred = X_test.copy() #测试集特征数据\n",
    "df_ads_pred['成交额真值'] = y_test #测试集标签真值\n",
    "df_ads_pred['成交额预测值'] = y_pred #测试集标签预测值\n",
    "df_ads_pred #显示数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f1338c31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "线性回归预测集评分： 0.6623995635606388\n",
      "线性回归训练集评分： 0.7293166018868376\n"
     ]
    }
   ],
   "source": [
    "print(\"线性回归预测集评分：\", model.score(X_test, y_test)) #评估模型\n",
    "print(\"线性回归训练集评分：\", model.score(X_train, y_train)) #训练集评分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2807bab3",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25104 (\\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20132 (\\N{CJK UNIFIED IDEOGRAPH-4EA4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 39069 (\\N{CJK UNIFIED IDEOGRAPH-989D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 36716 (\\N{CJK UNIFIED IDEOGRAPH-8F6C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 21457 (\\N{CJK UNIFIED IDEOGRAPH-53D1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 30495 (\\N{CJK UNIFIED IDEOGRAPH-771F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 30452 (\\N{CJK UNIFIED IDEOGRAPH-76F4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/miniconda3/lib/python3.12/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n",
      "findfont: Font family 'SimHei' not found.\n"
     ]
    },
    {
     "data": {
      "image/png": "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XsT9CS/j/oSXtZT7s7a2VsYY1dXVqa6uLtXDSXt1dXUyxqi2tlbZDaZ4uL2XUhqw/ec//9Gjjz6qiRMn6je/+Y3ee+89/frXv1br1q01evRoVVZWSpK6desW8rpu3boF2yorK9W1a9eQ9latWqlTp04hfXr37h12jkBbx44dVVlZGfM6scbS0OTJkzVp0qSw46+//rratWsX4V1BpigrK0v1EICIuD/hZdyf8LJMvz9btWql/Px8bd++XTU1NakeTtqrqanRzp07tXjxYu3evTukbceOHa7OkdKAra6uTscee6zuuusuSdJRRx2ljz/+WI899phGjx6dyqElxE033RSStauqqlJhYaEGDx6svLy8FI4Mzam2tlZlZWU6/fTTlZOTk+rhACG4P+Fl3J/wspZyf+7atUtr1qzR3nvvTY2GBNi1a5fatm2rU045Jez9DMy+iyWlAVv37t3Vp0+fkGM/+tGP9Oyzz0qS8vPzJUkbNmxQ93o7nG7YsEFHHnlksM/GjRtDzrF79259++23wdfn5+drw4YNIX0CX8fqU7891lgays3NVW5ubtjxnJycjP6HDoufM7yM+xNexv0JL8v0+9Pv98vn8ykrK0tZWSkvKJ/2srKy5PP5HO8bt/dRSn8KJ510kj777LOQY59//rn2339/SVLv3r2Vn5+v+fPnB9urqqq0dOlSFRUVSZKKioq0ZcsWLVu2LNjnjTfeUF1dnfr16xfss3jx4pB5omVlZTr44IODFSmLiopCrhPoE7iOm7EAAAAAQCKlNGCbMGGC3nnnHd11113697//rRkzZuiJJ57QmDFjJEk+n0/jx4/XnXfeqRdffFErVqzQhRdeqB49emjYsGGSbEbuJz/5iS677DK9++67euuttzR27Fidd9556tGjhyTp/PPPV+vWrXXJJZdo5cqVmjVrlqZNmxYyXXHcuHF69dVXdf/99+vTTz/V7bffrvfff19jx451PRYAAAAASKSUTok87rjj9Nxzz+mmm27SHXfcod69e2vq1KkaNWpUsM/111+v77//Xpdffrm2bNmik08+Wa+++mrIHNB//OMfGjt2rE477TRlZWVp+PDhevDBB4Pt7du31+uvv64xY8bomGOO0b777qtbb701uAebJJ144omaMWOGbrnlFv3mN7/RQQcdpOeffz64B5vbsQAAAABAoviMMSbV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Z/3MpzOinObNN6UhQ2Jf7uWX0yfDli73p9f4/VLfvqGZtfp8Pptp++ijDPp3lGTcn0i0wOy7WFIesLVu3VoHHnigJOmYY47Re++9p2nTpmnEiBGqqanRli1bQjJbGzZsUH5+viQpPz8/rJpjoHJj/T4Nqzlu2LBBeXl5atu2rbKzs5Wdne3Yp/45Yo3FSW5urnJzc8OO5+Tk8A+9BeDnDC9Lh/szJ8dWO8woc+dGnZf27qVPaMeoy3SZy5L8p5wide4ce1uBU05Jr4f0dLg/veatt6R//zt6ny++kN55h6JJTcX9iURxex/FVdY/Gerq6lRdXa1jjjlGOTk5mj9/frDts88+09dff62ioiJJUlFRkVasWKGNGzcG+5SVlSkvL099+vQJ9ql/jkCfwDlat26tY445JqRPXV2d5s+fH+zjZiwAAET06P9K80cK1l55RTJGx//pMg0Y4D64asq2Asgs6bYlBgD3Upphu+mmm3TGGWdov/3207Zt2zRjxgwtXLhQr732mtq3b69LLrlEEydOVKdOnZSXl6err75aRUVFwSIfgwcPVp8+fXTBBRfonnvuUWVlpW655RaNGTMmmNm68sor9dBDD+n666/XxRdfrDfeeEOzZ8/Wyy+/HBzHxIkTNXr0aB177LE6/vjjNXXqVH3//fe66KKLJMnVWAB4g99v97eqqLCl39k8GCljjHTdddL990fu8+GH0pFHNukyidzQHekrHbfEAOBOSgO2jRs36sILL1RFRYXat2+vww8/XK+99ppOP/10SdIDDzygrKwsDR8+XNXV1SouLtYjjzwSfH12drbmzp2rq666SkVFRdprr700evRo3XHHHcE+vXv31ssvv6wJEyZo2rRpKigo0JNPPhncg02SRowYoU2bNunWW29VZWWljjzySL366qshhUhijQVA6pWWhj+0dukijRolDR1K8IYkqa6WRo6UnnvOuX3ffe0eaoWFCbtkSYm9x/ljRcvVv78N0mNNj+3fP/ljA9A0PmOc/lmjOVRVVal9+/baunUrRUcyWG1trebNm6czzzyTOe5JFGnz4PoKCuz0sZaccYh2f5KdbKLvvrOL7v7lXJpfxx8vvf76ntL8aay57hV+fzZN4Peg5LwlBpuoNw33JxLNbWzguTVsABAvv99m1mL9+WntWvswU1qanDEtXGhLri9caL/2stJS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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分离特征和标签\n",
    "X = df_ads[['转发量']]\n",
    "y = df_ads.成交额\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n",
    "\n",
    "# 使用线性回归模型\n",
    "model = LinearRegression()\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 预测\n",
    "y_pred = model.predict(X_test)\n",
    "\n",
    "# 绘制预测直线\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.scatter(X_test, y_test, color='blue', label='真实值')\n",
    "plt.plot(X_test, y_pred, color='red', linewidth=2, label='预测直线')\n",
    "plt.xlabel('转发量')\n",
    "plt.ylabel('成交额')\n",
    "plt.title('转发量 vs 成交额')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1a876a22",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
